package br.com.edumobi.activities;

import android.content.Intent;
import android.os.Bundle;

import java.util.Date;
import java.util.List;

import br.com.edumobi.P;
import br.com.edumobi.R;
import br.com.edumobi.dados.modelos.Questao;
import br.com.edumobi.dados.modelos.Simulado;
import br.com.edumobi.fragments.MSQuestaoFragment;

public class MSQuestaoActivity extends GenericaActivity implements MSQuestaoFragment.AcoesMSQuestaoFragment{

    public static final String EXTRA_SIMULADO = "EXTRA_SIMULADO";
    public static final String EXTRA_INDEX_QUESTAO_SELECIONADA = "EXTRA_INDEX_QUESTAO_SELECIONADA";
    public static final String EXTRA_INICIO_SIMULADO = "EXTRA_INICIO_SIMULADO";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ms_questao);
    }

    @Override
    public void onBackPressed() {
        Intent intent = new Intent(this, MSQuestoesActivity.class);
        intent.putExtra(MSQuestoesActivity.EXTRA_SIMULADO, getIntent().getSerializableExtra(EXTRA_SIMULADO));
        intent.putExtra(MSQuestoesActivity.EXTRA_INICIO_SIMULADO, ((MSQuestaoFragment) getFragmentManager().findFragmentById(R.id.fragmentMSQuestaoMSQuestaoActivity)).prepararIrListaQuestao());
        startActivity(intent);

        super.onBackPressed();
    }

    @Override
    public List<Questao> obterQuestoes() {
        return ((Simulado) getIntent().getSerializableExtra(EXTRA_SIMULADO)).questoes;
    }

    @Override
    public Date obterDuracao() {
        return ((Simulado) getIntent().getSerializableExtra(EXTRA_SIMULADO)).duracao;
    }

    @Override
    public Integer obterIndexQuestaoSelecionada() {
        Integer index = getIntent().getIntExtra(EXTRA_INDEX_QUESTAO_SELECIONADA, P.INT_NULL);
        if (!index.equals(P.INT_NULL)) {
            return index;
        } else {
            return null;
        }
    }

    @Override
    public Long obterInicio() {
        Long inicio = getIntent().getLongExtra(EXTRA_INICIO_SIMULADO, P.LONG_NULL);

        if (!inicio.equals(P.LONG_NULL)) {
            return inicio;
        } else {
            return null;
        }
    }
    @Override
    public void irListaDeQuestoes(Long inicioSimulado) {
        Intent intent = new Intent(this, MSQuestoesActivity.class);
        intent.putExtra(MSQuestoesActivity.EXTRA_SIMULADO, getIntent().getSerializableExtra(EXTRA_SIMULADO));
        intent.putExtra(MSQuestoesActivity.EXTRA_INICIO_SIMULADO, inicioSimulado);
        startActivity(intent);
        finish();
    }

    @Override
    public void irResultado() {
        Intent intent = new Intent(this, MSResultadoActivity.class);
        intent.putExtra(MSResultadoActivity.EXTRA_SIMULADO, getIntent().getSerializableExtra(EXTRA_SIMULADO));
        startActivity(intent);
        finish();
    }
}
